1. Field of the Invention
This invention relates generally to systems and methods for configuring logic control units in distributed process control systems, and more particularly to a computer implemented programming process used to program a logic control unit based on a form of state machine theory.
2. Description of the Prior Art
Distributed process control systems are widely used in many applications including machine tools, material handling, assembling systems, molding and casting machines, and robotics systems. Such systems typically include a logic control unit (LCU) such as a commercially available programmable logic controller (PLC) which is a specialized data processor. A PLC typically includes a plurality of input ports for receiving analog and digital input signals from components of the system under control, a plurality of output ports providing digital and analog output signals to components of the system, a microprocessor, and memory for storing a control program. The PLC operates by repetitively scanning the signals present at the input ports to determine input data, analyzing the input data using the control program stored in memory to determine the corresponding output data, and providing output signals based on the output data at the output ports in order to control the system.
In accordance with one prior art method for configuring a PLC, a control program is created using a "ladder logic" programming method. A ladder logic program typically includes a plurality or ladder logic statements commonly referred to as "rungs". Each ladder logic statement defines a relationship between variables such as between an output variable and an input variable. A simple ladder logic statement might indicate that a particular output variable is ON if and only if variables A and B are both ON. For easier comprehension by ladder logic programmers, ladder logic editors use ladder logic statements, and programs are often expressed in terms of ladder logic graphs including input symbols, line segments, and variable names.
Ladder logic programs are created and edited using a programming computer system separate from the PLC such as a personal computer or mini computer. A complete ladder logic program is recorded on magnetic tape or disk, and uploaded from the programming computer system into the memory of the PLC.
An important problem with prior art methods for programming logic control units, such as those using a ladder logic editor, is that a skilled ladder logic programmer is needed to create a ladder logic program. In accordance with a typical prior art PLC development cycle, development begins with a hardware applications engineer who designs and builds the hardware for the system under control. A PLC programmer then interfaces with the hardware application engineer who describes specifications of the system to the programmer. The programmer then begins software development. Typically the hardware engineer cannot read the ladder logic program listing either in the form of ladder logic instructions or in the ladder logic graph form. Therefore it is common that numerous problems with the control system are discovered by the hardware engineer only after executing the software over the PLC. When the application engineer begins to evaluate the performance of the system as controlled by the configured PLC, the engineer determines problems with the system which must then be communicated to the programmer. The programmer then reads the ladder logic graphs or statements in order to determine which rungs of the diagrams correspond with the problems in the implemented system which have been communicated to the programmer by the hardware application's engineer. Although this repetitive communication between the programmer and applications engineer is awkward and time consuming, it is necessary because the hardware applications engineer is typically not skilled in the art of programming PLC's using a ladder logic editor.
What is needed is a system and method for programming a logic control unit wherein the time required to develop and test the control program is reduced.
What is also needed is a system and method for programming a logic control unit wherein the programming process provides an interface which is easily understood by an applications engineer who is not trained in the arts of software engineering ladder logic instructions, or ladder logic graphs.